package com.project.springboot.service.file;

import org.springframework.core.io.FileSystemResource;
import org.springframework.http.ResponseEntity;

import java.io.File;
import java.util.List;

/**
 * description: 文件相关服务接口
 * @author 朱正磊
 * @date 2023-12-18 10:17:16
 */
public interface FileService {

    /**
     * description: 下载文件到服务器
     * @author 朱正磊
     * @date 2023-12-18 13:35:13
     * @param fileUrl 文件下载的URL地址
     * @param fileDir 文件保存的目录
     * @param extension 生成文件的扩展名
     */
    void downloadFileToServer(String fileUrl, String fileDir, String extension);

    /**
     * description: 下载文件到客户端
     * @author 朱正磊
     * @date 2023-12-18 13:55:56
     * @param file 文件
     * @return 返回HTTP响应对象
     */
    ResponseEntity<FileSystemResource> downloadFileToClient(File file);

    /**
     * description: 下载zip压缩文件到客户端
     * @author 朱正磊
     * @date 2023-12-18 14:55:22
     * @param zipPathDir zip压缩文件目录
     * @param zipFileName zip压缩文件名称
     * @param fileList 待压缩文件全路径集合
     * @return 返回HTTP响应对象
     */
    ResponseEntity<FileSystemResource> downloadZipToClient(String zipPathDir, String zipFileName, List<String> fileList);

}
